如何声明变量和常量?

在上一节中,您了解了 move 包的架构,并了解了 move中智能合约的结构基础知识。现在,我们将探索 move的更多基础知识。

let 关键字

在 Move on Sui 中,我们使用 let 关键字来声明和初始化变量。声明变量后,您以后可以轻松访问和修改它。使用 let 关键字声明和初始化变量的方法有多种。

#![allow(unused)]
fn main() {
let <Variable> : <Type>
let <Variable> = <Expression>
let <Variable> : <Type> = <Expression>
}

现在让我们看一些例子。无需担心类型,我们将在几分钟内讨论它们。请记住,在 move 中必须添加分号。

#![allow(unused)]
fn main() {
let a;
let b : u8;
let c = true;
let d : u8 = 10;
}

很简单,不是吗?请记住,我们使用 struct 关键字声明了一个对象,但要初始化该对象,我们需要使用 let 关键字。这是一个例子:

module hello_world::hello_world {
	// Importing object module
	use sui::object::UID;
	use sui::tx_context::{Self, TxContext};

	// Declaring HelloWorldObject
	public struct HelloWorldObject has key {
		id: UID,
	}

	// Initializing the constructor
	fun init(ctx: &mut TxContext) {
		// Initializing the HelloWorldObject using let keyword
		let object = HelloWorldObject {
			id: object::new(ctx),
		}
	}
}
  • 注意:这些示例不可执行,它们是为了帮助您理解不同概念的用法。

您是否注意到我们如何使用 let 关键字来初始化构造函数内部的对象?我们使用 object::new(ctx) 使用 object 模块来初始化对象。

const 关键字

在Move on Sui中, const 关键字用于声明和初始化常量。我们可以在模块级别定义常量,这意味着它们可以在函数外部初始化,并且可以在模块中的任何位置使用。以下是初始化常量的方法。

#![allow(unused)]
fn main() {
const <Variable> : <Type> = <Expression>
}

可以使用任何数据类型定义常量。以下是了解常量的一些重要提示。

  1. 常量一旦定义就不能更改。
  2. 无法从其模块中访问它们。
  3. 它们主要用于定义模块级常量值,该值无法在模块中的任何位置更改和访问。

这是一个例子。

#![allow(unused)]
fn main() {
module examples::example {
		
	const MAX : u64 = 100;

	public fun is_max(num: u64): bool {
		num == MAX
	}

}
}

小结

变量和常量在 Move on Sui 中发挥着重要作用。它们用于定义对象并存储关键信息。接下来,我们将探索可在 move 中使用的不同数据类型。

quiz

在 Move on Sui 中,如何使用 let 关键字声明和初始化变量?提供示例说明声明变量的不同方法。